<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function Person(name){
            this.name = name;
        }
        let p = new Person('蒙多');
        let p2 = new Person('奥拉夫');
        // 证明person构造函数下存在prototype属性
        console.log(Person.prototype);
        // 证明示例对象上存在__proto__属性
        console.log(p.__proto__,p2.__proto__);
        // 证明对象的__proto__属性指向到原型
        console.log(p.__proto__ == Person.prototype);
        // 所以 原型是被所有的实力对象共享 可以将所有方法全部都设置到原型上避免浪费内存
        console.log(p.__proto__ == p2.__proto__);//true

        // 原型上增加方法
        Person.prototype.fn = function(){}//正确写法
        p.__proto__.fn2 = function(){};//错误写法
        // 证明原型contructor指向到构造函数
        console.log(Person.prototype.constructor == Person);//true
    </script>
</body>
</html>